﻿Imports CapaLogica
Imports CapaLogica.CL.Tema
Imports CapaLogica.CL.Tema.TemaPersistente
Imports CapaLogica.CL.UtilidadesGenerales
Imports CapaLogica.CL.Grupo
Imports System
Imports System.Windows.Forms
Imports System.Drawing
Imports System.Collections
Imports CapaLogica.CL.Usuario

Public Class frmModificarTema

    Private _id As Int32
    Private _nombre As String
    Private _descripcion As String
    Private _idForo As Int32
    Private _fechaInicio As DateTime = Date.Now.Date
    Private _fechaFin As DateTime
    Private _calificacion As Boolean
    Private _justificacion As String
    Private _cantMaxAportes As Int32
    'Private _usuario = Session.Id
    Private _usuario = 156

    Public Sub New(ByVal pid As Int32, ByVal pnombre As String, ByVal pdescripcion As String, ByVal pidForo As Int16, ByVal pfechaInicio As DateTime, ByVal pfechaFin As DateTime, ByVal pcalificacion As Boolean, ByVal pjustificacion As String, ByVal pcantAportes As Int32)

        InitializeComponent()
        _id = pid
        _nombre = pnombre
        _descripcion = pdescripcion
        _idForo = pidForo
        _fechaFin = pfechaFin
        _calificacion = pcalificacion
        _justificacion = pjustificacion
        numCanAportes.Value = pcantAportes

    End Sub

    Private Sub frmModificarTema_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        cargarDatos()
        cargarEstudiantesAsociados()
        cargarEstudiantesSinAsociar()
        eliminarElementosRepetidos(lbxEstudiantesSinAsociar, lbxEstudiantesAsociados)
        eliminarElementosRepetidos(lbxEstudiantesAsociados, lbxEstudiantesSinAsociar)

    End Sub

    Private Sub cargarEstudiantesSinAsociar()
        setearLista(lbxEstudiantesSinAsociar)

        Dim list As List(Of Informacion)
        list = GestorTema.cargarEstudiantesSinAsociar(_id)

        For Each tema As Informacion In list
            lbxEstudiantesSinAsociar.Items.Add(tema)
        Next

    End Sub

    Private Sub cargarEstudiantesAsociados()
        setearLista(lbxEstudiantesAsociados)

        Dim list As List(Of Informacion)
        list = GestorTema.buscarEstudiantesAsociadosTema(_id)

        For Each tema As Informacion In list
            lbxEstudiantesAsociados.Items.Add(tema)
        Next

        ' eliminarElementosRepetidos(lbxEstudiantesAsociados, lbxEstudiantesSinAsociar)
    End Sub

    Private Sub cargarDatos()
        txtNombre.Text = _nombre
        txtDescripcion.Text = _descripcion
        dtpFechaFinal.Text = _fechaFin
        If _calificacion = True Then
            rbtSi.Checked = True
            rbtNo.Checked = False
        Else
            rbtNo.Checked = True
            rbtSi.Checked = False
        End If
        txtJustificacion.Text = _justificacion
    End Sub

    Private Sub btnAsociarUno_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAsociarUno.Click
        cambiarElementosDeListas(lbxEstudiantesAsociados, lbxEstudiantesSinAsociar)
    End Sub

    Private Sub btnDesasociarUno_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDesasociarUno.Click
        cambiarElementosDeListas(lbxEstudiantesSinAsociar, lbxEstudiantesAsociados)
    End Sub

    Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click

        If txtNombre.Text = Nothing Or txtDescripcion.Text = Nothing Or txtJustificacion.Text = Nothing Then
            MsgBox("Los campos nombre,descripción  y justificacion no pueden quedar vacíos.", MsgBoxStyle.Exclamation, "Error")
        Else
            Dim Pregunta As Integer
            Pregunta = MsgBox("¿Desea modificar el Tema?", vbYesNo + vbExclamation + vbDefaultButton2, "Modificar Tema.")
            If Pregunta = vbYes Then
                Dim siCalificacion As Boolean = llevaCalificacion()
                Dim fechaInicio As DateTime = Date.Now.Date
                Dim listaEstudiantesA As New List(Of Int32)
                listaEstudiantesA = obtenerIdsDeListBox(lbxEstudiantesAsociados)
                GestorTema.modificarTema(_id, txtNombre.Text, txtDescripcion.Text, _idForo, _fechaInicio, dtpFechaFinal.Value, siCalificacion, txtJustificacion.Text, numCanAportes.Value, listaEstudiantesA, _usuario)
                MsgBox("Tema modificado", MsgBoxStyle.Information, "Tema")
                Me.Close()
            Else
                MsgBox("Tema no modificado", MsgBoxStyle.Information, "Tema")
            End If
        End If
    End Sub

    Private Function llevaCalificacion()
        Dim calif As Boolean
        If rbtSi.Checked = True Then
            calif = True
        Else
            calif = False
        End If
        Return calif
    End Function

    Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click
        Me.Dispose()
    End Sub
End Class